草庐IT

C++ this指针总是const

全部标签

javascript - 为什么使用 .call(this) 而不是括号

这个问题在这里已经有了答案:Reasonbehindthisselfinvokinganonymousfunctionvariant(5个答案)关闭8年前。有没有什么特别的原因让我经常遇到:(function(){console.log("Hello");}).call(this);代替:(function(){console.log("Hello");})();传不传this调用应该是一样的效果吧?似乎有一些性能差异:http://jsperf.com/call-vs-parenthesis.

javascript - 如何从 promise 方法内部访问 Angular js Controller 的 "this"?

我有一个简单的AngularjsController,如下所示发出XHR请求app.controller('MainController',['$http',function($http){this.php_response={};varpromise=$http.get('process.php');promise.then(function(success_data){//Idontthink"this"istalkingtothecontrollerthisanymore?this.php_response=success_data;},function(error){conso

javascript - 在 IIFE 上使用 .call(this)

我见过用.call(this)包裹的IIFE,而不仅仅是()。为什么要这样做?上下文:https://github.com/dmauro/Keypress/blob/development/keypress.js(据我了解,this将引用window对象-无论如何都会调用IIFE。这似乎是多余的。) 最佳答案 如果不使用call调用IIFE,它里面的this会引用全局对象window(或者undefined在严格模式下)。使用.call(this)将传递给它任何this在调用时引用的内容(无论当前上下文是什么)。例如,您想使用.ca

javascript - 为什么 $(function () 总是执行

我想知道为什么$(function(){}一直在执行。functiontest(0不是。这两者有什么区别? 最佳答案 jQuery的极端速记有时会欺骗眼睛。仔细观察构造:调用名为$的函数,将函数作为参数。这不等于定义一个函数供以后使用,如functiontest(){....}$是jQuery的“文档就绪”快捷方式。传递给它的函数将在文档加载后执行。 关于javascript-为什么$(function()总是执行,我们在StackOverflow上找到一个类似的问题:

javascript - 如何在内部函数中调用外部 "this"?

我为数组定义了两个函数:Array.prototype.remove=function(obj){vari=this.length;while(i--){if(this[i]===obj){this.removeAt(i);}}};Array.prototype.removeAll=function(array2){array2.forEach(function(item){this.remove(item);//removenotfound!!});}但是在removeAll函数中,报functionremoveisnotfound。我这样修复它:Array.prototype.re

javascript - 为什么除了 `goog.base(this)` 之外还需要 `goog.inherits()` ?

在这段涉及构造函数的GoogleClosurejavascript代码片段中,为什么goog.base(this);是必需的?Foo不是已经通过goog.inherits(foo,goog.Disposable);从Disposable继承了吗?goog.provide('Foo');/***@constructor*@extends{goog.Disposable}*/Foo=function(){goog.base(this);}goog.inherits(foo,goog.Disposable);foo.prototype.doSomething=function(){...}f

javascript - 在对象初始值设定项中设置属性时不再调用 setter : what does this mean?

在此JSMDN页面是这样写的:JavaScript1.8.1noteStartinginJavaScript1.8.1,settersarenolongercalledwhensettingpropertiesinobjectandarrayinitializers.我只是不明白这是要告诉我什么。 最佳答案 此代码片段:varo={};o.seven=7;和这个代码片段:varo={seven:7};通常是等价的;但如果它们前面有这段代码片段:Object.prototype.__defineSetter__('seven',fun

javascript - 用变量替换 $(this) 是否会产生任何性能差异

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我有一个看起来像这样的循环:$('#SomeSelectorID').find('.SomeElementsByClassName').each(function(){$(this).somecodehere;$(this).someothercodethere;$(this).someothercodehereandthere;});如果我在循环的顶部写

javascript - 为什么赋值在 Angular 表达式中并不总是有效?

我刚刚在Angular表达式中发现了这个有趣的明显不一致:可以在表达式中执行赋值如果赋值涉及来自ngRepeat的局部变量,这将中断这可以通过使用Controller中定义的setter而不是表达式中的赋值来克服SeePlunkerdocsonexpressions似乎只是明确禁止表达式中的控制流,我没有看到任何提及上述行为的类型。我想由此得出的结论是,无论如何使用setter可能是一种更好的设计模式,但是有没有人知道关于表达式中可能的内容的更明确的引用?如果Angular单方面禁止在其中赋值,也许会更好。(一个相关的不一致是,似乎可以在表达式中递增i=i+1而不是i+=1...)

javascript - 为什么 JS 中的别名 'this' 如此容易出错?

阅读Principlesofwritingconsistent,idiomaticJavaScript在标题为“this的面孔”的部分中,它表明在JavaScript中为this设置别名“极易出错”。我个人尽可能地尝试使用_.bind()(或类似的东西),但是有人知道为什么别名this如此容易出错吗? 最佳答案 根据调用方式的不同,this有四种含义。因此,必须注意跟踪正在使用哪个this,我可以想到至少有3/4的this容易出现问题。作为方法调用在obj.myFunc()中,this绑定(bind)到obj。如果myFunc在回调